package com.example.leetdemo.process;

import java.util.HashMap;
import java.util.Map;

public class Solution2982 {

    public static int maximumLength(String s) {
        if (s.length() < 3) {
            return -1;
        }
        int max = -1;
        Map<String, Integer> map = new HashMap<>();
        int p = 0, q = 0;
        char indexC = s.charAt(0);
        while (q < s.length() - 1) {
            if (s.charAt(q) != s.charAt(q + 1)) {
                for (int i = p; i < q + 1; i++) {
                    String key = indexC + "_" + (i - p);
                    int aa = map.getOrDefault(key, 0) + (q + 1 - i);
                    if (aa > 2) {
                        max = Math.max(max, i - p + 1);
                    }
                    map.put(key, aa);
                }
                p = p + 1;
                q = q + 1;
                indexC = s.charAt(q);
            } else {
                q++;
            }
        }
//        q++;
        if (p != q) {
            for (int i = p; i < q + 1; i++) {
                String key = indexC + "_" + (i - p);
                int aa = map.getOrDefault(key, 0) + (q - i + 1);
                if (aa > 2) {
                    max = Math.max(max, i - p + 1);
                }
                map.put(key, aa);
            }
        }

        return max;
    }

    public static void main(String[] args) {
        System.err.println(maximumLength("aaaa"));
    }

}
